import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;

public class PanelOrdenaFichero extends JPanel{
	JTextArea progreso = new JTextArea(3, 30);
	JTextArea t2 = new JTextArea (1, 20);
	JTextArea numeros=new JTextArea();
	File archivo;
	
	private class ManejadorBotonBuscar implements ActionListener {
		public void actionPerformed(ActionEvent JButton) {
			//Seccion de codigo en la que colocar lo que sucede al pulsar el boton para buscar fichero
			JFileChooser ventana=new JFileChooser();
			 ventana.showOpenDialog(null); //si no, no se muestra la ventana de directorios			 
			 archivo=ventana.getSelectedFile(); //el archivo seleccionado se almacena en archivo
		}
	}
	
	private class ManejadorBotonOrdenar implements ActionListener {
		public void actionPerformed(ActionEvent JButton) {
			Cronometro miCronometro = new Cronometro();
			miCronometro.activar();
			ArrayList<Integer> vector=new ArrayList<Integer>();
			Escanear scanner=new Escanear();
			vector=scanner.ExtraerFichero(archivo);
			//llamada al metodo que ordena el fichero
			Collections.sort(vector);
			for (Integer n:vector){
				progreso.append(String.valueOf(n));
				progreso.append(" ");}			
			miCronometro.detener();
			long tiempoTranscurrido = miCronometro.leer();
			String tiempoMostrar= String.valueOf(tiempoTranscurrido);
			t2.setText(tiempoMostrar);
		}
	}
	
	PanelOrdenaFichero(){
		//Creamos los elementos de la interfaz
		JButton ordenar=new JButton("Ordenar fichero");
		JPanel panelBotonOrdenar=new JPanel();
		panelBotonOrdenar.add(ordenar);
		JButton buscarFichero=new JButton("Seleccionar fichero");
		JPanel panelBotonBuscar=new JPanel();
		panelBotonBuscar.add(ordenar);
		JLabel etiquetaTiempo = new JLabel ("El tiempo empleado en milisegundos es:");
		JLabel etiquetaFichero = new JLabel ("Seleccione el fichero que desea ordenar");
		JLabel etiquetaNumeros=new JLabel("Enteros del fichero ordenados:");
		this.setBackground(Color.getHSBColor(39,40,16));
		ordenar.addActionListener (new ManejadorBotonOrdenar());
		buscarFichero.addActionListener (new ManejadorBotonBuscar());
		//Colocamos los elementos en el panel
		GridBagConstraints c = new GridBagConstraints();
		c.weightx = 1.0;
		c.weighty = 1.0;
		c.gridwidth = 1;
	    c.gridheight = 1;
	    c.insets = new Insets(5,5,0,0);
		this.setLayout (new GridBagLayout());
		c.gridx=0;
		c.gridy=0;
		this.add (etiquetaFichero, c);
		c.gridx=0;
		c.gridy=1;
		this.add(buscarFichero,c);
		c.gridx=0;
		c.gridy=2;
		this.add(ordenar,c);
		c.gridx=0;
		c.gridy=3;
		this.add(etiquetaNumeros,c);
		c.gridx=0;
		c.gridy=4;
		this.add(new JScrollPane (progreso),c);
		c.gridx=0;
		c.gridy=5;
		this.add(etiquetaTiempo,c);
		c.gridx=0;
		c.gridy=6;
		this.add(new JScrollPane (t2), c);
	}
}
